package com.ajavaer.framework.im.easemob.model;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.io.Serializable;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserModel implements Serializable {

    public UserModel() {
    }

    public UserModel(String username, String password, String nickname) {
        this.username = username;
        this.password = password;
        this.nickname = nickname;
    }

    public UserModel(String username, String password) {
        this(username, password, null);
    }

    /**
     * 用户的UUID，标识字段
     */
    private String uuid;
    /**
     * “user”用户类型
     */
    private String type = "user";
    /**
     * 用户名，也就是环信 ID
     */
    private String username;
    /**
     * 昵称，在 iOS Apns 推送时会使用的昵称，没有设置则不会返回
     */
    private String nickname;
    /**
     * 用户是否已激活，“true”已激活，“false“封禁，封禁需要通过解禁接口进行解禁，才能正常登录
     */
    private String activated;
    /**
     * 登录密码
     */
    private String password;
    /**
     * 消息提醒方式，“true”仅通知，“false“通知以及消息详情，没有设置返则不会返回
     */
    private String notification_no_disturbing;
    /**
     * 免打扰的设置。“0”代表免打扰关闭，“1”免打扰开启，没有设置返则不会返回
     */
    private String notification_display_style;
    /**
     * 免打扰的开始时间。数字代表开始时间，例如“8”代表每日8:00开启免打扰，没有设置返则不会返回
     */
    private String notification_no_disturbing_start;

    /**
     * 免打扰的结束时间。数字代表结束时间，例如“18”代表每日18:00关闭免打扰，没有设置返则不会返回
     */
    private String notification_no_disturbing_end;
    /**
     * 客户端推送证书名称，没有设置返则不会返回
     */
    private String notifier_name;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getActivated() {
        return activated;
    }

    public void setActivated(String activated) {
        this.activated = activated;
    }

    public Boolean isActivated() {
        return "true".equalsIgnoreCase(activated);
    }

    public String getNotification_no_disturbing() {
        return notification_no_disturbing;
    }

    public void setNotification_no_disturbing(String notification_no_disturbing) {
        this.notification_no_disturbing = notification_no_disturbing;
    }

    public String getNotification_display_style() {
        return notification_display_style;
    }

    public void setNotification_display_style(String notification_display_style) {
        this.notification_display_style = notification_display_style;
    }

    public String getNotification_no_disturbing_start() {
        return notification_no_disturbing_start;
    }

    public void setNotification_no_disturbing_start(String notification_no_disturbing_start) {
        this.notification_no_disturbing_start = notification_no_disturbing_start;
    }

    public String getNotification_no_disturbing_end() {
        return notification_no_disturbing_end;
    }

    public void setNotification_no_disturbing_end(String notification_no_disturbing_end) {
        this.notification_no_disturbing_end = notification_no_disturbing_end;
    }

    public String getNotifier_name() {
        return notifier_name;
    }

    public void setNotifier_name(String notifier_name) {
        this.notifier_name = notifier_name;
    }
}
